package com.sunwayworld.basemodule.business.ordertask.service;

import com.sunwayworld.basemodule.business.ordertask.bean.LimsOrderTaskBean;
import com.sunwayworld.framework.data.page.Page;
import com.sunwayworld.framework.mybatis.mapper.MapperParameter;
import com.sunwayworld.framework.restful.data.RestJsonWrapperBean;
import com.sunwayworld.framework.support.base.service.GenericService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface LimsOrderTaskService extends GenericService<LimsOrderTaskBean, Long> {

    Page<LimsOrderTaskBean> selectTest(RestJsonWrapperBean wrapperBean);

    void createRun(RestJsonWrapperBean wrapper);

    void addRunTasks(RestJsonWrapperBean wrapperBean);

    void removeRunTasks(RestJsonWrapperBean wrapperBean);

    void deleteRun(RestJsonWrapperBean wrapperBean);

    void batchSaveAssignment(RestJsonWrapperBean wrapperBean); // 任务分配

    void submit(RestJsonWrapperBean wrapperBean); // 任务分配提交

    void backScheduling(RestJsonWrapperBean wrapperBean);

    Page<LimsOrderTaskBean> selectOrderTaskWithResult(RestJsonWrapperBean wrapperBean);

    Page<LimsOrderTaskBean> selectOrderTaskWithOriginalResult(RestJsonWrapperBean wrapperBean);

    List<LimsOrderTaskBean> testSelectableList(RestJsonWrapperBean wrapper);

    List<LimsOrderTaskBean> selectTestSelections(RestJsonWrapperBean wrapperBean, String status);

    Page<LimsOrderTaskBean> selectOrderTaskWithSupplement(RestJsonWrapperBean wrapper);

    List<LimsOrderTaskBean> selectPreFolderByOrderTask(MapperParameter parameter);

    List<LimsOrderTaskBean> selectDerivativeTask(MapperParameter parameter);

    void createRunWithTest(RestJsonWrapperBean wrapperBean);

    List<LimsOrderTaskBean> selectAbnormalTestSelections();

    void abnormal(RestJsonWrapperBean wrapperBean);
}
